/**
描述
给定一个单链表的头结点pHead(该头节点是有值的，比如在下图，它的val是1)，长度为n，反转该链表后，返回新链表的表头。


数据范围：0≤n≤1000  

要求：空间复杂度O(1) ，时间复杂度O(n) 。

如当输入链表{1,2,3}时，
经反转后，原链表变为{3,2,1}，所以对应的输出为{3,2,1}。
以上转换过程如下图所示：

输入：{1,2,3}
返回值：{3,2,1}


输入：{}
返回值：{}
说明：空链表则输出空 
 */

function ReverseList(pHead) {
  let p1 = null;
  let p2 = pHead;
  while (p2) {
    let tmp = p2.next;
    p2.next = p1;
    p1 = p2;
    p2 = tmp;
  }
  return p1;
}

console.log(ReverseList({ 1, 2, 3 }));

